<template >
    <div class="sdy-search-history">
       <div v-if="historyList.length" class="history box" >
        <div class="title">
            <span>最近搜索</span>
            <van-icon 
            @click="clearHistoryHandler"
             name="delete-o" class="del" />
        </div>
        <ul class="content">
            <li v-for="item in historyList"
            :key="item.wordid"
            @click="clickHandler">{{item}}</li>
        </ul>
       </div>
       <div class="hot box" >
        <div class="title">
            <span>热门搜索</span>
            <span @click="(isShow=!isShow)">{{isShow?'隐藏':'显示'}}</span>
        </div>
        <ul v-if="isShow" class="content">
            <li
            v-for="item in hotList "
            :key="item.wordid"
            @click="clickHandler"
            >{{item.keyword}}</li>
           
        </ul>
        <div v-else  class="hid">已经隐藏搜索发现</div>
       </div>
    </div>
</template>
<script setup lang="ts">
import {ref ,onMounted} from 'vue'
import {useRouter,type Router} from 'vue-router'
// 导入请求 api
import { hotSearchApi } from '@/api/goods'
// 导入对应的 ts 接口
import type { MyHotSearchItem } from '@/config/interface'
const $router:Router = useRouter()
// 需要一个数组保存历史记录
const historyList =ref(JSON.parse(window.localStorage.getItem('history')as string )|| [])
// 准备一个变量控制隐藏显示
const isShow = ref<boolean>()
// 按钮点击时跳转到商品列表页
const clickHandler=(e:Event)=>{
    const text =(e.target as HTMLElement).innerText
// 这里需要跳转路由
$router.push({path:'/list',query:{search:text}})
}
// 垃圾桶点击删除
const clearHistoryHandler =()=>{
    // 删除localstorage内的一项
    window.localStorage.removeItem('history')
    historyList.value=[]
}
// 热门搜索相关
// 准备一个变量保存热门搜索列表
const hotList = ref<MyHotSearchItem[]>([])

// 挂载完毕后请求数据
onMounted(async () => {
const res = await hotSearchApi()
hotList.value=res.data
 
})
</script>
<style scoped lang="scss">
.sdy-search-history{
    height: 100%;
    box-sizing: border-box;
    padding: 15px;
    >.box{
        margin-bottom: 30px;
        >.title{
            height: 15px;
            display: flex;
            justify-content: space-between;
            >.del{
                font-size: 2opx;
            }
        }
        >ul{
            display: flex;
            flex-wrap: wrap;
            margin-top: 10px;
            >li{
                background-color: #c4c4c4;
                color:#fff;
                padding: 2px 3px;
                margin:3px;
            }
        }
        >.hid{
            height: 100px;
            display: flex;
            justify-content: center;
            align-items: center;
        }
    }
}
</style>